package conf

import (
	"fmt"
	"sync"
)

var (
	ConfigLock sync.RWMutex //读写锁
	MapDrop = make(map[int]ConfigDrop) 	//掉落 	// D_掉落.xlsx 
	MapGlobal = make(map[int]ConfigGlobal) 	//E全局常数 	// Q_全局常数.xlsx 
	MapHero = make(map[int]ConfigHero) 	//英雄 	// Y_英雄.xlsx 
	MapItem = make(map[int]ConfigItem) 	//道具 	// D_道具.xlsx 
	MapLanguage = make(map[string]ConfigLanguage) 	//文本 	// B_Lang.xlsx 
	MapMailText = make(map[int]ConfigMailText) 	//E邮件文本 	// B_Lang邮件.xlsx 
	MapNameBad = make(map[int]ConfigNameBad) 	//屏蔽字 	// B_Lang姓名表.xlsx 
	MapNameFemale = make(map[int]ConfigNameFemale) 	//女名 	// B_Lang姓名表.xlsx 
	MapNameMale = make(map[int]ConfigNameMale) 	//男名 	// B_Lang姓名表.xlsx 
	MapNameSur = make(map[int]ConfigNameSur) 	//姓 	// B_Lang姓名表.xlsx 
	MapNoticeRolling = make(map[int]ConfigNoticeRolling) 	//游戏走马灯 	// D_定时走马灯.xlsx 
	MapProtocolResult = make(map[int]ConfigProtocolResult) 	//E错误码 	// B_Lang返回码.xlsx 
	MapRoleLevel = make(map[int]ConfigRoleLevel) 	//主角等级 	// Z_主角.xlsx 
	MapServer = make(map[int]ConfigServer) 	//游戏服务器列表 	// F_服务器配置.xlsx 
	MapTest = make(map[int]ConfigTest) 	//测试公共类 	// Z_测试类.xlsx 
)

func InitMapAll() bool {
	fmt.Println("读取配置开始......")

	ConfigLock.Lock()
	defer ConfigLock.Unlock()

	if err := ReadJson("ConfigDrop", &MapDrop); err != nil {
		fmt.Println("Read ConfigDrop 掉落  D_掉落.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigGlobal", &MapGlobal); err != nil {
		fmt.Println("Read ConfigGlobal E全局常数  Q_全局常数.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigHero", &MapHero); err != nil {
		fmt.Println("Read ConfigHero 英雄  Y_英雄.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigItem", &MapItem); err != nil {
		fmt.Println("Read ConfigItem 道具  D_道具.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigLanguage", &MapLanguage); err != nil {
		fmt.Println("Read ConfigLanguage 文本  B_Lang.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigMailText", &MapMailText); err != nil {
		fmt.Println("Read ConfigMailText E邮件文本  B_Lang邮件.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameBad", &MapNameBad); err != nil {
		fmt.Println("Read ConfigNameBad 屏蔽字  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameFemale", &MapNameFemale); err != nil {
		fmt.Println("Read ConfigNameFemale 女名  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameMale", &MapNameMale); err != nil {
		fmt.Println("Read ConfigNameMale 男名  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNameSur", &MapNameSur); err != nil {
		fmt.Println("Read ConfigNameSur 姓  B_Lang姓名表.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigNoticeRolling", &MapNoticeRolling); err != nil {
		fmt.Println("Read ConfigNoticeRolling 游戏走马灯  D_定时走马灯.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigProtocolResult", &MapProtocolResult); err != nil {
		fmt.Println("Read ConfigProtocolResult E错误码  B_Lang返回码.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigRoleLevel", &MapRoleLevel); err != nil {
		fmt.Println("Read ConfigRoleLevel 主角等级  Z_主角.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigServer", &MapServer); err != nil {
		fmt.Println("Read ConfigServer 游戏服务器列表  F_服务器配置.xlsx  err", err)
		return false
	}
	if err := ReadJson("ConfigTest", &MapTest); err != nil {
		fmt.Println("Read ConfigTest 测试公共类  Z_测试类.xlsx  err", err)
		return false
	}

	fmt.Println("t读取配置结束......")
	return true
}
